1 /*
2 
3 Boost Software License - Version 1.0 - August 17th, 2003
4 
5 Permission is hereby granted, free of charge, to any person or organization
6 obtaining a copy of the software and accompanying documentation covered by
7 this license (the "Software") to use, reproduce, display, distribute,
8 execute, and transmit the Software, and to prepare derivative works of the
9 Software, and to permit third-parties to whom the Software is furnished to
10 do so, all subject to the following:
11 
12 The copyright notices in the Software and this entire statement, including
13 the above license grant, this restriction and the following disclaimer,
14 must be included in all copies of the Software, in whole or in part, and
15 all derivative works of the Software, unless such copies or derivative
16 works are solely in the form of machine-executable object code generated by
17 a source language processor.
18 
19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
22 SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
23 FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
24 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
25 DEALINGS IN THE SOFTWARE.
26 
27 */
28 
29 module derelict.glib.gdatetime;
30 
31 import derelict.glib.gtypes;
32 import derelict.glib.glibconfig;
33 import derelict.glib.gdate;
34 import derelict.glib.gtimezone;
35 import core.stdc.time;
36 import core.stdc.config;
37 
38 extern (C):
39 
40 alias c_long GTimeSpan;
41 alias _GDateTime GDateTime;
42 
43 struct _GDateTime;
44 
45 version(Derelict_Link_Static)
46 {
47     extern( C ) nothrow
48     {
49         void g_date_time_unref(GDateTime* datetime);
50         GDateTime* g_date_time_ref(GDateTime* datetime);
51         GDateTime* g_date_time_new_now(GTimeZone* tz);
52         GDateTime* g_date_time_new_now_local();
53         GDateTime* g_date_time_new_now_utc();
54         GDateTime* g_date_time_new_from_unix_local(gint64 t);
55         GDateTime* g_date_time_new_from_unix_utc(gint64 t);
56         GDateTime* g_date_time_new_from_timeval_local(const(GTimeVal)* tv);
57         GDateTime* g_date_time_new_from_timeval_utc(const(GTimeVal)* tv);
58         GDateTime* g_date_time_new(GTimeZone* tz, gint year, gint month, gint day, gint hour, gint minute, gdouble seconds);
59         GDateTime* g_date_time_new_local(gint year, gint month, gint day, gint hour, gint minute, gdouble seconds);
60         GDateTime* g_date_time_new_utc(gint year, gint month, gint day, gint hour, gint minute, gdouble seconds);
61         GDateTime* g_date_time_add(GDateTime* datetime, GTimeSpan timespan);
62         GDateTime* g_date_time_add_years(GDateTime* datetime, gint years);
63         GDateTime* g_date_time_add_months(GDateTime* datetime, gint months);
64         GDateTime* g_date_time_add_weeks(GDateTime* datetime, gint weeks);
65         GDateTime* g_date_time_add_days(GDateTime* datetime, gint days);
66         GDateTime* g_date_time_add_hours(GDateTime* datetime, gint hours);
67         GDateTime* g_date_time_add_minutes(GDateTime* datetime, gint minutes);
68         GDateTime* g_date_time_add_seconds(GDateTime* datetime, gdouble seconds);
69         GDateTime* g_date_time_add_full(GDateTime* datetime, gint years, gint months, gint days, gint hours, gint minutes, gdouble seconds);
70         gint g_date_time_compare(gconstpointer dt1, gconstpointer dt2);
71         GTimeSpan g_date_time_difference(GDateTime* end, GDateTime* begin);
72         guint g_date_time_hash(gconstpointer datetime);
73         gboolean g_date_time_equal(gconstpointer dt1, gconstpointer dt2);
74         void g_date_time_get_ymd(GDateTime* datetime, gint* year, gint* month, gint* day);
75         gint g_date_time_get_year(GDateTime* datetime);
76         gint g_date_time_get_month(GDateTime* datetime);
77         gint g_date_time_get_day_of_month(GDateTime* datetime);
78         gint g_date_time_get_week_numbering_year(GDateTime* datetime);
79         gint g_date_time_get_week_of_year(GDateTime* datetime);
80         gint g_date_time_get_day_of_week(GDateTime* datetime);
81         gint g_date_time_get_day_of_year(GDateTime* datetime);
82         gint g_date_time_get_hour(GDateTime* datetime);
83         gint g_date_time_get_minute(GDateTime* datetime);
84         gint g_date_time_get_second(GDateTime* datetime);
85         gint g_date_time_get_microsecond(GDateTime* datetime);
86         gdouble g_date_time_get_seconds(GDateTime* datetime);
87         gint64 g_date_time_to_unix(GDateTime* datetime);
88         gboolean g_date_time_to_timeval(GDateTime* datetime, GTimeVal* tv);
89         GTimeSpan g_date_time_get_utc_offset(GDateTime* datetime);
90         const(gchar)* g_date_time_get_timezone_abbreviation(GDateTime* datetime);
91         gboolean g_date_time_is_daylight_savings(GDateTime* datetime);
92         GDateTime* g_date_time_to_timezone(GDateTime* datetime, GTimeZone* tz);
93         GDateTime* g_date_time_to_local(GDateTime* datetime);
94         GDateTime* g_date_time_to_utc(GDateTime* datetime);
95         gchar* g_date_time_format(GDateTime* datetime, const(gchar)* format);
96     }
97 }
98 else
99 {
100     extern( C ) nothrow
101     {
102         alias da_g_date_time_unref = void function(GDateTime* datetime);																									
103         alias da_g_date_time_ref = GDateTime* function(GDateTime* datetime);																								
104         alias da_g_date_time_new_now = GDateTime* function(GTimeZone* tz);																									
105         alias da_g_date_time_new_now_local = GDateTime* function();																											
106         alias da_g_date_time_new_now_utc = GDateTime* function();																											
107         alias da_g_date_time_new_from_unix_local = GDateTime* function(gint64 t);																							
108         alias da_g_date_time_new_from_unix_utc = GDateTime* function(gint64 t);																								
109         alias da_g_date_time_new_from_timeval_local = GDateTime* function(const(GTimeVal)* tv);																				
110         alias da_g_date_time_new_from_timeval_utc = GDateTime* function(const(GTimeVal)* tv);																				
111         alias da_g_date_time_new = GDateTime* function(GTimeZone* tz, gint year, gint month, gint day, gint hour, gint minute, gdouble seconds);							
112         alias da_g_date_time_new_local = GDateTime* function(gint year, gint month, gint day, gint hour, gint minute, gdouble seconds);										
113         alias da_g_date_time_new_utc = GDateTime* function(gint year, gint month, gint day, gint hour, gint minute, gdouble seconds);										
114         alias da_g_date_time_add = GDateTime* function(GDateTime* datetime, GTimeSpan timespan);																			
115         alias da_g_date_time_add_years = GDateTime* function(GDateTime* datetime, gint years);																				
116         alias da_g_date_time_add_months = GDateTime* function(GDateTime* datetime, gint months);																			
117         alias da_g_date_time_add_weeks = GDateTime* function(GDateTime* datetime, gint weeks);																				
118         alias da_g_date_time_add_days = GDateTime* function(GDateTime* datetime, gint days);																				
119         alias da_g_date_time_add_hours = GDateTime* function(GDateTime* datetime, gint hours);																				
120         alias da_g_date_time_add_minutes = GDateTime* function(GDateTime* datetime, gint minutes);																			
121         alias da_g_date_time_add_seconds = GDateTime* function(GDateTime* datetime, gdouble seconds);																		
122         alias da_g_date_time_add_full = GDateTime* function(GDateTime* datetime, gint years, gint months, gint days, gint hours, gint minutes, gdouble seconds);			
123         alias da_g_date_time_compare = gint function(gconstpointer dt1, gconstpointer dt2);																					
124         alias da_g_date_time_difference = GTimeSpan function(GDateTime* end, GDateTime* begin);																				
125         alias da_g_date_time_hash = guint function(gconstpointer datetime);																									
126         alias da_g_date_time_equal = gboolean function(gconstpointer dt1, gconstpointer dt2);																				
127         alias da_g_date_time_get_ymd = void function(GDateTime* datetime, gint* year, gint* month, gint* day);																
128         alias da_g_date_time_get_year = gint function(GDateTime* datetime);																									
129         alias da_g_date_time_get_month = gint function(GDateTime* datetime);																								
130         alias da_g_date_time_get_day_of_month = gint function(GDateTime* datetime);																							
131         alias da_g_date_time_get_week_numbering_year = gint function(GDateTime* datetime);																					
132         alias da_g_date_time_get_week_of_year = gint function(GDateTime* datetime);																							
133         alias da_g_date_time_get_day_of_week = gint function(GDateTime* datetime);																							
134         alias da_g_date_time_get_day_of_year = gint function(GDateTime* datetime);																							
135         alias da_g_date_time_get_hour = gint function(GDateTime* datetime);																									
136         alias da_g_date_time_get_minute = gint function(GDateTime* datetime);																								
137         alias da_g_date_time_get_second = gint function(GDateTime* datetime);																								
138         alias da_g_date_time_get_microsecond = gint function(GDateTime* datetime);																							
139         alias da_g_date_time_get_seconds = gdouble function(GDateTime* datetime);																							
140         alias da_g_date_time_to_unix = gint64 function(GDateTime* datetime);																								
141         alias da_g_date_time_to_timeval = gboolean function(GDateTime* datetime, GTimeVal* tv);																				
142         alias da_g_date_time_get_utc_offset = GTimeSpan function(GDateTime* datetime);																						
143         alias da_g_date_time_get_timezone_abbreviation = const(gchar)* function(GDateTime* datetime);																		
144         alias da_g_date_time_is_daylight_savings = gboolean function(GDateTime* datetime);																					
145         alias da_g_date_time_to_timezone = GDateTime* function(GDateTime* datetime, GTimeZone* tz);																			
146         alias da_g_date_time_to_local = GDateTime* function(GDateTime* datetime);																							
147         alias da_g_date_time_to_utc = GDateTime* function(GDateTime* datetime);																								
148         alias da_g_date_time_format = gchar* function(GDateTime* datetime, const(gchar)* format);																			
149     }
150 
151     __gshared
152     {
153         da_g_date_time_unref g_date_time_unref; 
154         da_g_date_time_ref g_date_time_ref; 
155         da_g_date_time_new_now g_date_time_new_now; 
156         da_g_date_time_new_now_local g_date_time_new_now_local; 
157         da_g_date_time_new_now_utc g_date_time_new_now_utc; 
158         da_g_date_time_new_from_unix_local g_date_time_new_from_unix_local; 
159         da_g_date_time_new_from_unix_utc g_date_time_new_from_unix_utc; 
160         da_g_date_time_new_from_timeval_local g_date_time_new_from_timeval_local; 
161         da_g_date_time_new_from_timeval_utc g_date_time_new_from_timeval_utc; 
162         da_g_date_time_new g_date_time_new; 
163         da_g_date_time_new_local g_date_time_new_local; 
164         da_g_date_time_new_utc g_date_time_new_utc; 
165         da_g_date_time_add g_date_time_add; 
166         da_g_date_time_add_years g_date_time_add_years; 
167         da_g_date_time_add_months g_date_time_add_months; 
168         da_g_date_time_add_weeks g_date_time_add_weeks; 
169         da_g_date_time_add_days g_date_time_add_days; 
170         da_g_date_time_add_hours g_date_time_add_hours; 
171         da_g_date_time_add_minutes g_date_time_add_minutes; 
172         da_g_date_time_add_seconds g_date_time_add_seconds; 
173         da_g_date_time_add_full g_date_time_add_full; 
174         da_g_date_time_compare g_date_time_compare; 
175         da_g_date_time_difference g_date_time_difference; 
176         da_g_date_time_hash g_date_time_hash; 
177         da_g_date_time_equal g_date_time_equal; 
178         da_g_date_time_get_ymd g_date_time_get_ymd; 
179         da_g_date_time_get_year g_date_time_get_year; 
180         da_g_date_time_get_month g_date_time_get_month; 
181         da_g_date_time_get_day_of_month g_date_time_get_day_of_month; 
182         da_g_date_time_get_week_numbering_year g_date_time_get_week_numbering_year; 
183         da_g_date_time_get_week_of_year g_date_time_get_week_of_year; 
184         da_g_date_time_get_day_of_week g_date_time_get_day_of_week; 
185         da_g_date_time_get_day_of_year g_date_time_get_day_of_year; 
186         da_g_date_time_get_hour g_date_time_get_hour; 
187         da_g_date_time_get_minute g_date_time_get_minute; 
188         da_g_date_time_get_second g_date_time_get_second; 
189         da_g_date_time_get_microsecond g_date_time_get_microsecond; 
190         da_g_date_time_get_seconds g_date_time_get_seconds; 
191         da_g_date_time_to_unix g_date_time_to_unix; 
192         da_g_date_time_to_timeval g_date_time_to_timeval; 
193         da_g_date_time_get_utc_offset g_date_time_get_utc_offset; 
194         da_g_date_time_get_timezone_abbreviation g_date_time_get_timezone_abbreviation; 
195         da_g_date_time_is_daylight_savings g_date_time_is_daylight_savings; 
196         da_g_date_time_to_timezone g_date_time_to_timezone; 
197         da_g_date_time_to_local g_date_time_to_local; 
198         da_g_date_time_to_utc g_date_time_to_utc; 
199         da_g_date_time_format g_date_time_format; 
200     }
201 }